home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1996 March / macformat-035.iso / Shareware City / Developers / ICAppSourceKit1.2 / ICEditPrefAppleEvents.p < prev    next >
Encoding:
Text File  |  1995-11-04  |  1.4 KB  |  61 lines  |  [TEXT/CWIE]

  1. unit ICEditPrefAppleEvents;
  2.  
  3. interface
  4.  
  5.     const
  6.         EPSuite = 'ICAp';
  7.         EPEvent = 'ICAp';
  8. { Direct parameter is key }
  9.         EPDestination = 'dest'; { pass true if you want the default preference file.  defaults to current pref file (or default pref file if none)  }
  10.  
  11.     procedure SetupEditPrefAppleEvent;
  12.  
  13. implementation
  14.  
  15.     uses
  16.         AppleEvents,{}
  17.         ICGlobals, ICDocument;
  18.  
  19. {$PUSH}
  20. {$R-}
  21.     function HandleEditPrefAE (var event, reply: AppleEvent; ignored: longInt): OSErr;
  22.         var
  23.             key: Str255;
  24.             typ: DescType;
  25.             actualSize: Size;
  26.             fs: FSSpec;
  27.             usefss, usecurrent: boolean;
  28.             err: OSErr;
  29.     begin
  30.         reply := reply; { Unused }
  31.         ignored := ignored; { Unused }
  32.         usefss := true;
  33.         usecurrent := false;
  34.         err := AEGetParamPtr(event, EPDestination, typeFSS, typ, @fs, sizeof(fs), actualSize);
  35.         if err <> noErr then begin
  36.             usefss := false;
  37.             usecurrent := true;
  38.             if AEGetParamPtr(event, EPDestination, typeBoolean, typ, @fs, sizeof(fs), actualSize) = noErr then begin
  39.                 usecurrent := false;
  40.             end;
  41.         end;
  42.         err := AEGetParamPtr(event, keyDirectObject, typeChar, typ, @key[1], 255, actualSize);
  43.         if err <> noErr then begin
  44.             actualSize := 0;
  45.         end;
  46.         key[0] := chr(actualSize);
  47.         err := EditPreference(key, fs, usefss, usecurrent);
  48.         HandleEditPrefAE := err;
  49.     end;
  50. {$POP}
  51.  
  52.     procedure SetupEditPrefAppleEvent;
  53.         var
  54.             junk: OSErr;
  55.     begin
  56.         if has_AppleEvents then begin
  57.             junk := AEInstallEventHandler(EPSuite, EPEvent, @HandleEditPrefAE, 0, false);
  58.         end;
  59.     end;
  60.  
  61. end.